package com.guigu.gulicommon.constant.enumes.product;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import com.guigu.gulicommon.api.BaseDataEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 商品属性类型
 *
 * @author 陈俊杰
 * @version 1.0
 * @since 2024/8/24 21:42
 */
@Getter
@AllArgsConstructor
public enum AttrType implements BaseDataEnum {
    SALE(0, "销售属性"),
    BASE(1, "基本属性"),
    SALE_AND_BASE(2, "既是销售属性又是基本属性"),
    ;
    /**
     * 入库值
     */
    @EnumValue
    private final Integer code;
    /**
     * 显示值
     */
    @JsonValue
    private final String name;

    /**
     * 根据code获取枚举
     *
     * @param code 入库值
     * @return 枚举
     */
    @Override
    public AttrType getEnumByCode(Integer code) {
        for (AttrType value : values()) {
            if (value.getCode().equals(code)) {
                return value;
            }
        }
        return null;
    }

    /**
     * 根据name获取枚举
     *
     * @param name 显示值
     * @return 枚举
     */
    @Override
    public AttrType getEnumByName(String name) {
        for (AttrType value : values()) {
            if (value.getName().equals(name)) {
                return value;
            }
        }
        return null;
    }
}
